/**
 * 通用的 AJAX 请求方法
 * @param {Object} options - 请求配置
 * @param {string} options.url - 请求地址
 * @param {string} [options.method='GET'] - 请求方法
 * @param {Object} [options.data={}] - 请求数据
 * @param {Object} [options.headers={}] - 请求头
 * @param {Function} [options.success] - 成功回调
 * @param {Function} [options.error] - 错误回调
 * @param {Function} [options.complete] - 完成回调
 * @returns {Promise} - 返回 Promise 对象
 */
function ajaxRequest(options) {
    const defaultOptions = {
        method: 'GET',
        data: {},
        headers: {},
        dataType: 'json',
        contentType: 'application/json',
        cache: false
    };

    const config = { ...defaultOptions, ...options };

    return new Promise((resolve, reject) => {
        $.ajax({
            url: config.url,
            method: config.method,
            data: config.method === 'GET' ? config.data : JSON.stringify(config.data),
            headers: config.headers,
            dataType: config.dataType,
            contentType: config.contentType,
            cache: config.cache,
            success: function(response) {
                if (config.success) {
                    config.success(response);
                }
                resolve(response);
            },
            error: function(xhr, status, error) {
                console.error('AJAX请求失败:', {
                    status: xhr.status,
                    statusText: xhr.statusText,
                    response: xhr.responseText
                });
                
                if (config.error) {
                    config.error(xhr, status, error);
                }
                reject({ xhr, status, error });
            },
            complete: function(xhr, status) {
                if (config.complete) {
                    config.complete(xhr, status);
                }
            }
        });
    });
}


// ajaxRequest({
//     url: '/api/data',
//     method: 'POST',
//     data: { name: 'John', age: 30 },
//     headers: { Authorization: 'Bearer token' },
//     success: function(response) {
//         console.log('请求成功:', response);
//     },
//     error: function(xhr, status, error) {
//         console.error('请求失败:', error);
//     }
// })
